home *** CD-ROM | disk | FTP | other *** search
- Path: news.tu-chemnitz.de!fachat
- From: fachat@physik.tu-chemnitz.de (Andre Fachat)
- Newsgroups: comp.sys.cbm,comp.os.misc,alt.comp.hardware.homebuilt,comp.sys.apple2,comp.sys.apple2.programmer,comp.sys.atari.8bit
- Subject: Re: 6502 Multitasking OS announce
- Followup-To: comp.sys.cbm,comp.os.misc,alt.comp.hardware.homebuilt,comp.sys.apple2,comp.sys.apple2.programmer,comp.sys.atari.8bit
- Date: 18 Mar 1996 13:40:25 GMT
- Organization: University of Technology Chemnitz, FRG
- Message-ID: <4ijp49$eil@narses.hrz.tu-chemnitz.de>
- References: <4i94fs$stj@narses.hrz.tu-chemnitz.de>
- NNTP-Posting-Host: dag.physik.tu-chemnitz.de
- X-Newsreader: TIN [version 1.2 PL2]
-
- Andre Fachat (fachat@physik.tu-chemnitz.de) wrote:
-
- : OS/A65
- : ------
-
- : This is the announcement of "OS/A65", a 6502 CPU operating system
- : I wrote some time ago and which I now put on the Web. It is
- : copyrighted under the GNU public license.
-
- After I received some mail, I thought I should give some more info.
- Besides that I'm going to port the kernel startup and the video
- device to the C64 to actually show how to do some porting.
- It should be working within a week (I have many other things on
- my schedule...)
-
- so long
- Andre
-
- ----------------------
-
- The MMU, which I used in my homemade system is non of the ususal
- 68xxx or something, it's a 74ls610, a 'standard' TTL chip.
- Because of this it has no resemblence with the C128 or C64 so
- called MMU. It has 16 registers with 12 bit each (only 8 are used)
- that expand the upper 4 address bits to 8. I.e. the contents of the
- appropriate register is used as the upper 8 address bits, while the
- upper 4 CPU address bits are used to select the register.
- So the computer can - indirectly - access 1 MByte of memory.
-
- I have no idea of how this resembles the Atari or 65816 memory management.
- The idea of the MMU is to switch between different memory environments
- for the different tasks. Other page sizes or even other mechanisms should be
- working too after some development.
-
- With a MMU, the computer can run the same program multiple times,
- without any change. Each task has its own memory.
- But then, it's slow: for each timing critical task the multitasking
- has to be switched off by a SEI statement.
- This slows the system down. Sending infrared commands for the
- audio equipment needs to shut down irq handling all the time
- during the send - characters may get lost on a serial line, for
- example.
-
- Without a MMU, only programs that use different memory locations
- can be executed. The stack is divided into several areas, thus
- shortening the stack for each task but allowing several tasks
- to coexist. This version is a bit faster, as no MMU handling has to be
- done, but this doesn't do much. Without MMU, in contrast to the version
- with MMU, an NMI routine is available, that might be able to handle
- very time critical stuff.
-
- The memory needs depend on what you do with the system.
- The kernel itself needs 4kByte of ROM to run in, not more. The total ROM
- size depends on which programs you put in the ROM. I have a 32kByte
- EPROM with kernel, fsiec, fsibm, fsdev, shell and monitor, stdlib,
- and many devices.
- With MMU you have to have 4kByte RAM for the system, and at least 4kByte
- for each task. Devices need 4kByte only of they don't use the
- kernel page.
- A system without MMU can pack the used memory locations much better,
- so it should be running fine in 8kByte (which I haven't tested, though).
- 32kByte are almost always enough.
-
-
- To port the system to, e.g. the C64, you have to take the version
- without MMU, of course. The kernel is hardware independent, there just
- have to be some irq sources (handled by devices) to allow task switching
- when a task is interrupted (in my homebuilt computer there is a 50Hz irq
- line). The startup code has to be modified for the CPU registers.
-
- Then the video device has to be modified to handle the VIC interface
- and the C64 keyboard, may be also allowing several consoles.
- The fsiec filesystem has to be modified to handle the C64 serial bus
- interface.
-
- Then a first test version should actually be ready to go, with
- fsiec, fsdev, null device, spooler device and video devices.
-
- Hm, that sounds to simple to me that I wonder why I haven't done it
- before...
-
-
- I do not sell any hardware, nor do I build them for free ;-)
- The boards I have are completely handwired and I will never
- give them away.
-
-
- --
- fachat@physik.tu-chemnitz.de | Andre Fachat, Phone: ++49-371-531-3551
- -----------------------------| Vettersstr. 72/622, 09126 Chemnitz, Germany
- Distribution via the |----------------------------------------------
- Microsoft Network prohibited!| Unix was invented prior to user-friendlyness!
-